%%
%% This is file `cvsplitbib.sty',
%% It was modified from the package splitbib.sty to work with the 
%% xetexCV document class.
%%
%% The original source files were:
%%
%% cvsplitbib.sty 
%% 
%% IMPORTANT COPYRIGHT NOTICE:
%% 
%% Permission is granted to copy this file to another file with a clearly
%% different name and to customize the declarations in that copy to serve
%% the needs of your installation.
%% 
%% However, NO PERMISSION is granted to generate or to distribute a
%% modified version of this file under its original name.
%% 
%% You are NOT ALLOWED to change this file.
%% 
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cvsplitbib}
     [2005/12/22 v1.17 Splits bibliography into categories]
\newif\ifNMSB@strict\NMSB@strictfalse
\DeclareOption{strict}{\NMSB@stricttrue}
\DeclareOption{nonstrict}{\NMSB@strictfalse}
\newif\ifNMSB@ownorder\NMSB@ownorderfalse
\DeclareOption{reorder}{\NMSB@ownordertrue}
\DeclareOption{keeporder}{\NMSB@ownorderfalse}
\newif\ifNMSB@export\NMSB@exportfalse
\DeclareOption{export}{\NMSB@exporttrue}
\DeclareOption{noexport}{\NMSB@exportfalse}
\newif\ifNMSB@newchap\NMSB@newchaptrue
\DeclareOption{newchap}{\NMSB@newchaptrue}
\DeclareOption{newsec}{\NMSB@newchaptrue}
\DeclareOption{nonewchap}{\NMSB@newchapfalse}
\DeclareOption{nonewsec}{\NMSB@newchapfalse}

\ProcessOptions*
\newcounter{NMSB@catlevelone}
\newcounter{NMSB@catleveltwo}
\setcounter{NMSB@catlevelone}{10}
\setcounter{NMSB@catleveltwo}{10}
\newcounter{NMSB@catlevel}
\setcounter{NMSB@catlevel}{0}
\newcounter{SBresetdepth}
\setcounter{SBresetdepth}{0}
\newcounter{NMSB@ent}
\newcounter{NMSB@maxent}

\def\NMSB@initent{100}
\newtoks\NMSB@tok
\setcounter{NMSB@maxent}{\NMSB@initent0}
\addtocounter{NMSB@maxent}{-1}
\setcounter{NMSB@ent}{\NMSB@initent}
\newdimen\NMSB@longest
\newdimen\NMSB@reallylongest
\setlength{\NMSB@longest}{0pt}
\setlength{\NMSB@reallylongest}{0pt}
\def\NMSB@reallylongestlabel{}
\expandafter\def\csname NMSBtitle@99\endcsname{\SBmisctitle}
\expandafter\def\csname NMSBprefix@9999\endcsname{\SBmiscprefix}
\def\SBmisctitle{Miscellaneous}
\def\SBmiscprefix{}
\newtoks\NMSB@currprefixtok
\newtoks\NMSB@currprefixlevelonetok
\def\NMSB@prevcat{0}
\def\NMSB@prevcatlevelone{0}
\def\NMSB@missingcat{}
\def\NMSB@doublecat{}
\let\NMSB@valuelist\relax
\newdimen\SBabovesepwidth
\newdimen\SBbelowsepwidth
\setlength{\SBabovesepwidth}{.4pt}
\setlength{\SBbelowsepwidth}{.4pt}

\def\NMSB@penalty{5000}
\def\NMSB@halfpenalty{500}
\def\NMSB@warnnocateg#1,\end{%
  \message{---- Splitbib warning ----^^J%
    -- The following bib entries have no category: #1^^J}}

\def\NMSB@warndblcateg#1,\end{%
  \message{---- Splitbib warning ----^^J%
    -- The following bib entries have several categories: #1^^J%
    -- The first one will be used.^^J}}

\def\NMSB@warnwronglongest{%
  \expandafter\NMSB@tok\expandafter{\NMSB@reallylongestlabel}
  \message{---- Splitbib warning ----^^J%
    -- The longest label appears to be [\the\NMSB@tok]
    instead of}
  \@ifundefined{SBlongestlabel}{}{\message{(forced)}}
  \expandafter\NMSB@tok\expandafter{\NMSB@longestlabel}
  \message{[\the\NMSB@tok]^^J}}

\def\NMSB@errtoomanycat#1{%
  \message{---- Splitbib error ----^^J%
    -- You defined too many level-#1 categories (max = 89).^^J}}

\def\NMSB@errtoomanyent{%
  \setcounter{NMSB@maxent}{\NMSB@initent0}
  \addtocounter{NMSB@maxent}{-\NMSB@initent}
  \message{---- Splitbib error ----^^J%
    -- You defined too many entries in one category %
    (max = \theNMSB@maxent)^^J}}

\def\NMSB@errcattoodeep{%
  \message{---- Splitbib error ----^^J
    -- Only two category depth allowed.^^J}}

\def\NMSB@errentriesoutsidecat{%
  \message{---- Splitbib error ----^^J
    -- \string\SBentries outside category environment.^^J}}

\def\NMSB@errentrieswithoptinsidecat{%
  \message{----Splitbib error ----^^J
    -- \string\SBentries with optional argument inside category env.^^J}}

\def\NMSB@erraliasoutsidecat{%
  \message{----Splitbib error ----^^J
    -- \string\SBalias used outside category environment.^^J}}

\def\NMSB@erraliasalreadydef#1{%
  \message{----Splitbib error ----^^J
    -- Alias #1 multiply defined.^^J}}

\def\NMSB@erraliasundefined#1{%
  \message{----Splitbib error ----^^J
    -- Alias #1 undefined.^^J}}

\def\NMSB@errcommentoutsidecat{%
  \message{----Splitbib error ----^^J
    -- \string\SBcomment used outside category environment.^^J}}

\def\SBtitlestyle#1{\gdef\NMSB@titlestyle{#1}}

\def\SBsubtitlestyle#1{\gdef\NMSB@subtitlestyle{#1}}

\def\NMSB@titlestyle{bar}

\def\NMSB@subtitlestyle{dash}

\def\SBtitle#1{\def\NMSB@level{title}%
	\cvsubsection{#1} \vspace{-0.25cm}}

\def\SBsubtitle#1#2{\def\NMSB@level{subtitle}%
  \csname NMSB@style\NMSB@subtitlestyle\endcsname{}{#2}}

\def\SBtitlefont#1{{\bfseries\Large #1}}
\def\SBsubtitlefont#1{{\bfseries #1}}
  
\def\NMSB@stylebar#1#2{\hskip-\leftmargin%
  \vbox{%
    \medskip\par
    \vrule height \SBabovesepwidth depth 0pt width \textwidth
    \vskip.3\baselineskip\par\noindent
    {\null\hfill
      \csname SB\NMSB@level font\endcsname{#1#2}%
      \hfill\null}%
    \vskip-.4\baselineskip\par\noindent
    \vrule height \SBbelowsepwidth depth 0pt width \textwidth}}

\def\NMSB@styledash#1#2{\unskip\hskip-\leftmargin%
  \vbox{%
    \smallskip\noindent
    {\null\hfill
      \csname SB\NMSB@level font\endcsname{---~#1#2~---}}
    \hfill\null}
  \par}

\def\NMSB@stylenone#1#2{%
  \vspace{-2\itemsep}\vspace{-\baselineskip}}

\def\NMSB@stylesimple#1#2{\hskip-\leftmargin%
  \csname SB\NMSB@level font\endcsname{#1#2}
}

\def\category{\@ifnextchar[{\@lNMSBcategory}{\@lNMSBcategory[]}}
\def\@lNMSBcategory[#1]#2{%
  \stepcounter{NMSB@catlevel}%
  \ifnum\theNMSB@catlevel>2\relax
    \NMSB@errcattoodeep
    \addtocounter{NMSB@catlevel}{-1}%
  \fi
  \ifnum\theNMSB@catlevel=1\relax
    \ifnum\theNMSB@catlevelone=98\relax
      \NMSB@errtoomanycat{one}%
    \else
      \stepcounter{NMSB@catlevelone}%
    \fi
    \setcounter{NMSB@catleveltwo}{10}%
    \expandafter\gdef\csname NMSBprefix@\theNMSB@catlevelone
     \endcsname{#1}%
    \expandafter\gdef\csname NMSBtitle@\theNMSB@catlevelone
     \endcsname{#2}%
  \else
    \ifnum\theNMSB@catleveltwo=98\relax
      \NMSB@errtoomanycat{two}%
    \else
      \stepcounter{NMSB@catleveltwo}%
    \fi
    \expandafter\let\expandafter\NMSB@tempentry\csname
      NMSBprefix@\theNMSB@catlevelone\endcsname
    \expandafter\NMSB@tok\expandafter{\NMSB@tempentry}
    \expandafter\xdef\csname NMSBprefix@\theNMSB@catlevelone
      \theNMSB@catleveltwo\endcsname{\the\NMSB@tok #1}%
    \expandafter\gdef\csname NMSBtitle@\theNMSB@catlevelone
      \theNMSB@catleveltwo\endcsname{#2}%
  \fi
}

\def\@NMSBcategory#1{%
  \stepcounter{NMSB@catlevel}
  \ifnum\theNMSB@catlevel>2\relax
    \NMSB@errcattoodeep
    \addtocounter{NMSB@catlevel}{-1}%
  \fi
  \ifnum\theNMSB@catlevel=1\relax
    \ifnum\theNMSB@catlevelone=98\relax
      \NMSB@errtoomanycat{one}%
    \else
      \stepcounter{NMSB@catlevelone}%
    \fi
    \setcounter{NMSB@catleveltwo}{10}
    \expandafter\gdef\csname NMSBtitle@\theNMSB@catlevelone
     \endcsname{#1}%
  \else
    \ifnum\theNMSB@catleveltwo=98\relax
      \NMSB@errtoomanycat{two}%
    \else
      \stepcounter{NMSB@catleveltwo}%
    \fi
    \expandafter\ifx\csname NMSBprefix@\theNMSB@catlevelone\endcsname
      \relax
    \else
      \expandafter\let\expandafter\NMSB@tempentry\csname
        NMSBprefix@\theNMSB@catlevelone\endcsname
      \expandafter\NMSB@tok\expandafter{\NMSB@tempentry}%
      \expandafter\xdef\csname NMSBprefix@\theNMSB@catlevelone
       \theNMSB@catleveltwo\endcsname{\the\NMSB@tok}%
    \fi
    \expandafter\gdef\csname NMSBtitle@\theNMSB@catlevelone
     \theNMSB@catleveltwo\endcsname{#1}%
  \fi
}

\def\endcategory{\addtocounter{NMSB@catlevel}{-1}}
\def\SBalias#1{%
  \ifnum\theNMSB@catlevel<1\relax
    \NMSB@erraliasoutsidecat
  \else
    \expandafter\ifx\csname NMSBalias@#1\endcsname\relax
      \ifnum\theNMSB@catlevel=1\relax
        \expandafter\xdef\csname NMSBalias@#1\endcsname{%
          \theNMSB@catlevelone 10}%
      \else
        \expandafter\xdef\csname NMSBalias@#1\endcsname{%
          \theNMSB@catlevelone\theNMSB@catleveltwo}%
      \fi
    \else
      \NMSB@erraliasalreadydef{#1}%
    \fi
  \fi
}

\long\def\SBcomment#1{%
  \ifnum\theNMSB@catlevel<1\relax
    \NMSB@errcommentoutsidecat
  \else
    \ifnum\theNMSB@catlevel=1\relax
      \expandafter\gdef\csname NMSBcomment@\theNMSB@catlevelone
       \endcsname{#1}%
    \else
      \expandafter\gdef\csname NMSBcomment@\theNMSB@catlevelone
       \theNMSB@catleveltwo\endcsname{#1}%
    \fi
  \fi
}

\def\SBentries{\@ifnextchar[
  {\NMSB@entries@withoptarg}%
  {\NMSB@entries@incatenv}}
\def\NMSB@entries@withoptarg[#1]#2{%
  \ifnum\theNMSB@catlevel>0\relax
    \NMSB@errentrieswithoptinsidecat
  \else
    \@for\@citeb:=#2\do{%
      \expandafter\ifx\csname NMSBcateg@\@citeb\endcsname\relax
        \expandafter\ifx\csname NMSBalias@#1\endcsname\relax
          \NMSB@erraliasundefined{#1}%
        \else
          \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
            \csname NMSBalias@#1\endcsname}%
          \ifNMSB@ownorder
            \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
              \csname NMSBcateg@\@citeb\endcsname\theNMSB@ent}%
    \stepcounter{NMSB@ent}%
            \ifnum\theNMSB@ent=\theNMSB@maxent\relax
      \NMSB@errtoomanyent
            \fi
          \fi
        \fi
      \else
        \ifNMSB@strict
          \xdef\NMSB@doublecat{\NMSB@doublecat \@citeb,}%
        \else
          \expandafter\ifx\csname NMSBalias@#1\endcsname\relax
            \NMSB@erraliasundefined{#1}%
          \else
            \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
              \csname NMSBcateg@\@citeb\endcsname,%
              \csname NMSBalias@#1\endcsname}%
            \ifNMSB@ownorder
              \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
                \csname NMSBcateg@\@citeb\endcsname\theNMSB@ent}%
              \stepcounter{NMSB@ent}%
              \ifnum\theNMSB@ent=\theNMSB@maxent\relax
                \NMSB@errtoomanyent
              \fi
            \fi
          \fi
        \fi
      \fi}%
  \fi
}
\def\NMSB@entries@incatenv#1{%
  \ifnum\theNMSB@catlevel<1\relax
    \NMSB@errentriesoutsidecat
  \else
    \@for\@citeb:=#1\do{%
      \expandafter\ifx\csname NMSBcateg@\@citeb\endcsname\relax
        \ifnum\theNMSB@catlevel=2\relax
          \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
            \theNMSB@catlevelone\theNMSB@catleveltwo}%
        \else
          \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
             \theNMSB@catlevelone10}%
        \fi%
        \ifNMSB@ownorder
          \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
            \csname NMSBcateg@\@citeb\endcsname\theNMSB@ent}%
          \stepcounter{NMSB@ent}%
          \ifnum\theNMSB@ent=\theNMSB@maxent\relax\NMSB@errtoomanyent\fi
        \fi
      \else
        \ifNMSB@strict
          \xdef\NMSB@doublecat{\NMSB@doublecat \@citeb,}%
        \else
          \ifnum\theNMSB@catlevel=2\relax
            \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
              \csname NMSBcateg@\@citeb\endcsname,%
              \theNMSB@catlevelone\theNMSB@catleveltwo}%
          \else
            \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
              \csname NMSBcateg@\@citeb\endcsname,%
              \theNMSB@catlevelone10}%
          \fi
        \fi
        \ifNMSB@ownorder
          \expandafter\xdef\csname NMSBcateg@\@citeb\endcsname{%
            \csname NMSBcateg@\@citeb\endcsname\theNMSB@ent}%
          \stepcounter{NMSB@ent}%
          \ifnum\theNMSB@ent=\theNMSB@maxent\relax\NMSB@errtoomanyent\fi
        \fi
      \fi}%
  \fi
}
\let\@NMSBrealorig@@bibitem\@bibitem
\let\@NMSBorig@@lbibitem\@lbibitem
\def\@NMSBorig@@bibitem#1{\item\if@filesw \immediate\write\@auxout
  {\string\bibcite{#1}{\the\NMSB@currprefixtok\the\value{\@listctr}}}%
  \fi\ignorespaces}
\def\NMSB@getcateg#1#2#3#4#5-{#1#2#3#4}
\def\NMSB@getent#1#2#3#4#5-{#5}
\def\@lbibitem[#1]#2#3\par{%
  \expandafter\ifx\csname NMSBcateg@#2\endcsname\relax
    \expandafter\gdef\csname NMSBcateg@#2\endcsname{9999}%
    \edef\NMSB@missingcat{\NMSB@missingcat #2,}%
  \fi
  \let\@tempa\relax
  \ifNMSB@ownorder
    \edef\NMSB@temp{\csname NMSBcateg@#2\endcsname}%
    \@for\NMSB@local:=\NMSB@temp\do{%
      \ifx\relax\@tempa\relax
        \edef\@tempa{\expandafter\NMSB@getcateg\NMSB@local-}%
      \else
        \edef\@tempa{\@tempa,\expandafter\NMSB@getcateg\NMSB@local-}%
      \fi
    }%
  \else
    \edef\@tempa{\csname NMSBcateg@#2\endcsname}%
  \fi
  \expandafter\ifx\csname NMSBprefix@\@tempa\endcsname\relax
    \def\@tempb{#1}%
  \else
    \expandafter\let\expandafter\NMSB@tempentry\csname
      NMSBprefix@\@tempa\endcsname
    \expandafter\NMSB@tok\expandafter{\NMSB@tempentry #1}%
    \edef\@tempb{\the\NMSB@tok}%
  \fi
  \@ifundefined{SBlongestlabel}{%
    \setbox\@tempboxa=\hbox{\@tempb}%
    \ifdim\NMSB@longest<\wd\@tempboxa
      \setlength\NMSB@longest{\wd\@tempboxa}%
      \global\let\NMSB@longestlabel\@tempb
    \fi}{}%
  \ifNMSB@ownorder
    \edef\NMSB@temp{\csname NMSBcateg@#2\endcsname}%
    \@for\NMSB@local:=\NMSB@temp\do{%
      \edef\NMSB@tempb{\expandafter\NMSB@getent\NMSB@local-}
      \expandafter\xdef\csname NMSBkey@\NMSB@tempb\endcsname{#2}%
      \global\expandafter\let\csname NMSBlabel@\NMSB@tempb\endcsname
        \@tempb
      \expandafter\gdef\csname NMSBentry@\NMSB@tempb\endcsname{#3}%
      \ifx\relax\NMSB@valuelist\relax
        \xdef\NMSB@valuelist{\NMSB@local}%
      \else
        \xdef\NMSB@valuelist{\NMSB@valuelist,\NMSB@local}%
      \fi}%
  \else
    \expandafter\xdef\csname NMSBkey@\theNMSB@ent\endcsname{#2}%
    \global\expandafter\let\csname NMSBlabel@\theNMSB@ent\endcsname
      \@tempb
    \expandafter\gdef\csname NMSBentry@\theNMSB@ent\endcsname{#3}%
    \@for\NMSB@item:=\@tempa\do{%
      \ifx\relax\NMSB@valuelist\relax
        \xdef\NMSB@valuelist{\NMSB@item\theNMSB@ent}%
      \else
        \xdef\NMSB@valuelist{\NMSB@valuelist,\NMSB@item\theNMSB@ent}%
      \fi}%
    \stepcounter{NMSB@ent}%
    \ifnum\theNMSB@ent=\theNMSB@maxent\relax\NMSB@errtoomanyent\fi
  \fi
}
\def\@bibitem#1#2\par{%
  \expandafter\ifx\csname NMSBcateg@#1\endcsname\relax
    \expandafter\gdef\csname NMSBcateg@#1\endcsname{9999}%
    \edef\NMSB@missingcat{\NMSB@missingcat #1,}%
  \fi
  \def\@tempa{}%
  \ifNMSB@ownorder
    \edef\NMSB@temp{\csname NMSBcateg@#1\endcsname}%
    \@for\NMSB@local:=\NMSB@temp\do{%
      \ifx\relax\@tempa\relax
        \edef\@tempa{\expandafter\NMSB@getcateg\NMSB@local-}%
      \else
        \edef\@tempa{\@tempa,\expandafter\NMSB@getcateg\NMSB@local-}%
      \fi}%
  \else
    \edef\@tempa{\csname NMSBcateg@#1\endcsname}%
  \fi
  \@ifundefined{SBlongestlabel}{%
    \expandafter\ifx\csname NMSBprefix@\@tempa\endcsname\relax
      \let\@tempb\NMSB@initiallongestlabel
    \else
      \expandafter\let\expandafter\NMSB@tempentry\csname
        NMSBprefix@\@tempa\endcsname
      \expandafter\expandafter\expandafter\NMSB@tok
      \expandafter\expandafter\expandafter{%
        \expandafter\NMSB@tempentry
        \NMSB@initiallongestlabel}%
      \edef\@tempb{\the\NMSB@tok}%
    \fi
    \setbox\@tempboxa=\hbox{\@tempb}%
    \ifdim\NMSB@longest<\wd\@tempboxa
      \setlength\NMSB@longest{\wd\@tempboxa}%
      \global\let\NMSB@longestlabel\@tempb
    \fi}{}%
  \ifNMSB@ownorder
    \edef\NMSB@temp{\csname NMSBcateg@#1\endcsname}%
    \@for\NMSB@local:=\NMSB@temp\do{%
      \edef\NMSB@tempb{\expandafter\NMSB@getent\NMSB@local-}
      \expandafter\xdef\csname NMSBkey@\NMSB@tempb\endcsname{#1}%
      \expandafter\gdef\csname NMSBentry@\NMSB@tempb\endcsname{#2}%
      \ifx\relax\NMSB@valuelist\relax
        \xdef\NMSB@valuelist{\NMSB@local}%
      \else
        \xdef\NMSB@valuelist{\NMSB@valuelist,\NMSB@local}%
      \fi}%
  \else
    \expandafter\xdef\csname NMSBkey@\theNMSB@ent\endcsname{#1}%
    \expandafter\gdef\csname NMSBentry@\theNMSB@ent\endcsname{#2}%
    \@for\NMSB@item:=\@tempa\do{%
      \ifx\relax\NMSB@valuelist\relax
        \xdef\NMSB@valuelist{\NMSB@item\theNMSB@ent}%
      \else
        \xdef\NMSB@valuelist{\NMSB@valuelist,\NMSB@item\theNMSB@ent}%
      \fi}%
    \stepcounter{NMSB@ent}%
    \ifnum\theNMSB@ent=\theNMSB@maxent\relax\NMSB@errtoomanyent\fi
  \fi
}
\def\NMSB@afterfi#1\fi{\fi#1}
\def\NMSB@afterelse#1\else#2\fi{\fi#1}
\def\NMSB@empty{}
\def\NMSB@pivot#1#2#3#4#5,{%
  \ifx\relax#5\NMSB@empty%
    \ifx\relax#3\relax\else\NMSB@resort{#1}{#3}, \fi%
    #2%
    \ifx\relax#4\relax\else,\NMSB@resort{#1}{#4}\fi%
  \else%
    \ifnum#5#1#2 \NMSB@afterelse{\NMSB@afterfi{%
        \NMSB@pivot{#1}{#2}{#3#5,}{#4}}}%
    \else%
      \NMSB@afterfi{\NMSB@afterfi{%
          \NMSB@pivot{#1}{#2}{#3}{#4#5,}}}%
    \fi
  \fi
}%
\def\NMSB@qsort#1#2,{%
  \ifx\relax#2\relax\else
    \NMSB@afterfi{\NMSB@pivot{#1}{#2}{}{}}\fi}
\def\NMSB@resort#1#2{\NMSB@qsort{#1}#2\relax,}
\def\NMSBsort#1#2{\NMSB@qsort{#1}#2,\relax,}
\def\NMSBsortlt#1{\NMSBsort{<}{#1}}
\long\def\NMSB@writecatbib#1{%
  \NMSB@tok{#1}%
  \immediate\write\NMSB@catbib{\the\NMSB@tok}}
\def\NMSB@writeentry#1#2#3#4#5,{\ifx\relax #5\relax
  \else
    \def\NMSB@currcat{#1#2#3#4}%
    \def\NMSB@currcatlevelone{#1#2}%
    \ifx\NMSB@currcatlevelone\NMSB@prevcatlevelone\else
      \expandafter\ifx\csname NMSBtitle@\NMSB@currcatlevelone
       \endcsname\relax
      \else
        \ifNMSB@export
          \if@filesw
            \immediate\write\NMSB@catbib{%
              \string\par\string\addpenalty{-\NMSB@penalty}%
              \string\relax^^J%
              \string\item[]%
              \string\SBtitle}%
            \expandafter\let\expandafter\NMSB@tempentry
              \csname NMSBtitle@\NMSB@currcatlevelone\endcsname
            \expandafter\NMSB@writecatbib\expandafter{%
              \expandafter{\NMSB@tempentry}}%
            \immediate\write\NMSB@catbib{\string\relax^^J%
              \string\par\string\addpenalty{\NMSB@penalty}%
              \string\relax}%
            \expandafter\ifx\csname
             NMSBcomment@\NMSB@currcatlevelone\endcsname\relax
            \else
              \immediate\write\NMSB@catbib{\string\vskip2ex^^J%
                \string\hspace{-\leftmargin}\string\relax^^J%
                \string\begin{minipage}{\textwidth}^^J%
                \string\addtolength\string\parindent{20pt}^^J%
                \string\noindent}
              \expandafter\let\expandafter\NMSB@tempentry
                \csname NMSBcomment@\NMSB@currcatlevelone\endcsname
              \expandafter\NMSB@writecatbib\expandafter{%
                \NMSB@tempentry^^J}%
              \immediate\write\NMSB@catbib{\string\end{minipage}^^J%
                \string\par\string\addpenalty{\NMSB@penalty}
                \string\vskip2ex}
            \fi
          \fi
        \else
          \par\addpenalty{-\NMSB@penalty}%
          \item[]%
            \SBtitle{\csname NMSBtitle@\NMSB@currcatlevelone\endcsname}
          \par\addpenalty{\NMSB@penalty}%
          \expandafter\ifx\csname
           NMSBcomment@\NMSB@currcatlevelone\endcsname\relax
          \else
            \vskip2ex\hspace{-\leftmargin}\begin{minipage}{\textwidth}%
            \addtolength\parindent{20pt}\noindent%
            \csname NMSBcomment@\NMSB@currcatlevelone\endcsname
            \end{minipage}%
            \par\addpenalty{\NMSB@penalty}\vskip2ex
          \fi
        \fi
      \fi
      \xdef\NMSB@prevcatlevelone{#1#2}%
      \ifnum\theSBresetdepth>0\relax
        \setcounter{\@listctr}{0}%
      \fi
      \expandafter\ifx\csname NMSBprefix@\NMSB@prevcatlevelone
       \endcsname\relax
        \NMSB@currprefixlevelonetok{\relax}%
      \else
        \expandafter\expandafter\expandafter\NMSB@currprefixlevelonetok
        \expandafter\expandafter\expandafter{%
           \csname NMSBprefix@\NMSB@prevcatlevelone\endcsname}%
      \fi
    \fi
    \ifx\NMSB@currcat\NMSB@prevcat\else
      \ifnum\NMSB@currcat=9999\else
        \expandafter\ifx\csname NMSBtitle@\NMSB@currcat\endcsname
         \relax
        \else
          \ifNMSB@export
            \if@filesw
              \immediate\write\NMSB@catbib{%
                \string\par\string\addpenalty{-\NMSB@halfpenalty}%
                \string\relax^^J%
                \string\item[]%
                \string\SBsubtitle}%
              \expandafter\let\expandafter\NMSB@tempentrya
                \csname NMSBtitle@\NMSB@currcatlevelone\endcsname
              \expandafter\let\expandafter\NMSB@tempentryb
                \csname NMSBtitle@\NMSB@currcat\endcsname
              \expandafter\NMSB@writecatbib\expandafter{%
                \expandafter{\NMSB@tempentrya}}
              \expandafter\NMSB@writecatbib\expandafter{%
                \expandafter{\NMSB@tempentryb}}
              \immediate\write\NMSB@catbib{\string\relax^^J%
                \string\par\string\addpenalty{\NMSB@penalty}%
                \string\relax}%
              \expandafter\ifx\csname
               NMSBcomment@\NMSB@currcat\endcsname\relax
              \else
                \immediate\write\NMSB@catbib{\string\vskip2ex^^J%
                  \string\hspace{-\leftmargin}\string\relax^^J%
                  \string\begin{minipage}{\textwidth}^^J%
                  \string\addtolength\string\parindent{20pt}^^J%
                  \string\noindent}
                \expandafter\let\expandafter\NMSB@tempentry
                  \csname NMSBcomment@\NMSB@currcat\endcsname
                \expandafter\NMSB@writecatbib\expandafter{%
                  \NMSB@tempentry^^J}%
                \immediate\write\NMSB@catbib{\string\end{minipage}^^J%
                  \string\par\string\addpenalty{\NMSB@penalty}%
                  \string\vskip2ex}
              \fi
            \fi
          \else
            \par\addpenalty{-\NMSB@halfpenalty}%
            \item[]
            \SBsubtitle{\csname NMSBtitle@\NMSB@currcatlevelone\endcsname}%
                       {\csname NMSBtitle@\NMSB@currcat\endcsname}%
            \par\addpenalty{\NMSB@penalty}%
            \expandafter\ifx\csname
             NMSBcomment@\NMSB@currcat\endcsname\relax
            \else
              \vskip2ex\hspace{-\leftmargin}\begin{minipage}{\textwidth}%
              \addtolength\parindent{20pt}\noindent%
              \csname NMSBcomment@\NMSB@currcat\endcsname
              \end{minipage}%
              \par\addpenalty{\NMSB@penalty}\vskip2ex
            \fi
          \fi
        \fi
      \fi
      \xdef\NMSB@prevcat{#1#2#3#4}%
      \ifnum\theSBresetdepth>1\relax
        \setcounter{\@listctr}{0}%
      \fi
      \expandafter\ifx\csname NMSBprefix@\NMSB@currcat\endcsname\relax
        \expandafter\NMSB@currprefixtok\expandafter{%
           \the\NMSB@currprefixlevelonetok}%
      \else
        \expandafter\expandafter\expandafter\NMSB@currprefixtok
        \expandafter\expandafter\expandafter{%
          \csname NMSBprefix@\NMSB@currcat\endcsname}
      \fi
    \fi
    \expandafter\ifx\csname NMSBlabel@#5\endcsname\relax
      \ifNMSB@export
        \if@filesw
          \stepcounter\@listctr
          \immediate\write\NMSB@catbib{%
            \string\bibitem}%
  \expandafter\ifx\expandafter\relax\the\NMSB@currprefixtok
          \else
    \expandafter\expandafter\expandafter\def
    \expandafter\expandafter\expandafter\NMSB@tempentry
    \expandafter\expandafter\expandafter{%
      \expandafter\the\expandafter\NMSB@currprefixtok
              \the\value{\@listctr}}%
            \expandafter\NMSB@writecatbib\expandafter{%
              \expandafter[\NMSB@tempentry]}%
  \fi
          \immediate\write\NMSB@catbib{%
            {\csname NMSBkey@#5\endcsname}}
          \expandafter\let\expandafter\NMSB@tempentry
          \csname NMSBentry@#5\endcsname%
          \expandafter\NMSB@writecatbib\expandafter{%
            \NMSB@tempentry^^J^^J}
        \fi
      \else
        \@NMSBorig@@bibitem{\csname NMSBkey@#5\endcsname}%
        \csname NMSBentry@#5\endcsname
      \fi
      \setbox\@tempboxa=\hbox{\the\NMSB@currprefixtok\the\value{\@listctr}}%
      \ifdim\NMSB@reallylongest<\wd\@tempboxa
        \setlength{\NMSB@reallylongest}{\wd\@tempboxa}%
        \xdef\NMSB@reallylongestlabel{%
          \expandafter\ifx\expandafter\relax\the\NMSB@currprefixtok
  \else\the\NMSB@currprefixtok\fi\the\value{\@listctr}}%
      \fi
    \else
      \ifNMSB@export
        \if@filesw
          \immediate\write\NMSB@catbib{%
            \string\bibitem}
          \expandafter\let\expandafter\NMSB@tempentry
            \csname NMSBlabel@#5\endcsname
          \expandafter\NMSB@writecatbib\expandafter{%
            \expandafter[\NMSB@tempentry]}%
          \immediate\write\NMSB@catbib{%
            {\csname NMSBkey@#5\endcsname}}%
          \expandafter\let\expandafter\NMSB@tempentry
            \csname NMSBentry@#5\endcsname%
          \expandafter\NMSB@writecatbib\expandafter{%
            \NMSB@tempentry^^J^^J}
        \fi
      \else
        \@NMSBorig@@lbibitem[\csname NMSBlabel@#5\endcsname]%
                            {\csname NMSBkey@#5\endcsname}%
                            \csname NMSBentry@#5\endcsname
      \fi
      \setbox\@tempboxa=\hbox{\csname NMSBlabel@#5\endcsname}%
      \ifdim\NMSB@reallylongest<\wd\@tempboxa
        \expandafter\let\expandafter\NMSB@reallylongestlabel\csname
  NMSBlabel@#5\endcsname
      \fi
    \fi
  \fi
}
\def\NMSB@writelist#1{%
  \@for\NMSB@curritem:=#1\do{%
    \edef\NMSB@curritem{\expandafter
      \@firstofone\NMSB@curritem\@empty}%
    \expandafter\NMSB@writeentry\NMSB@curritem ,}}
\let\@NMSBorig@thebibliography\thebibliography
\let\@NMSBorig@endthebibliography\endthebibliography
\def\thebibliography#1{%
  \setcounter{NMSB@ent}{\NMSB@initent}%
  \@ifundefined{SBlongestlabel}{%
    \gdef\NMSB@initiallongestlabel{#1}}{%
    \global\let\NMSB@longestlabel\SBlongestlabel
    \setbox\@tempboxa=\hbox{\SBlongestlabel}%
    \setlength{\NMSB@longest}{\wd\@tempboxa}}%
  \ifNMSB@export
    \if@filesw
      \newwrite\NMSB@catbib
      \immediate\openout\NMSB@catbib \jobname.sbb\relax
      \expandafter\NMSB@tok\expandafter{\SBlongestlabel}
      \immediate\write\NMSB@catbib{%
        \string\begin{thebibliography}{%
        \@ifundefined{SBlongestlabel}{#1}{\the\NMSB@tok}}}
    \fi
  \fi
}
\def\endthebibliography{%
  \ifNMSB@export
    \usecounter{enumiv}%
  \else
    \ifNMSB@newchap
      \@ifundefined{chapter}{\cvsection{\refname}}{\chapter*{\bibname}}%
    \fi
	\vspace{-0.5cm}
    \list{}{%
      \leftmargin 0pt
	  \settowidth\labelwidth{\@biblabel{\NMSB@longestlabel}}%
      \@openbib@code
      \usecounter{enumiv}%
      \let\p@enumiv\@empty
      \renewcommand\theenumiv{\@arabic\c@enumiv}
	  }%
  \fi
  \edef\NMSB@sortedvaluelist{%
    \expandafter\NMSBsortlt\expandafter{\NMSB@valuelist}}%
  \expandafter\NMSB@writelist\expandafter{\NMSB@sortedvaluelist}%
  \ifNMSB@export
    \if@filesw
      \immediate\write\NMSB@catbib{%
        \string\end{thebibliography}}
      \immediate\closeout\NMSB@catbib
    \fi
    \begingroup
    \ifNMSB@newchap\else
      \@ifundefined{chapter}{\def\section##1##2{}}{\def\chapter##1##2{}}%
    \fi
    \let\thebibliography\@NMSBorig@thebibliography
    \let\endthebibliography\@NMSBorig@endthebibliography
    \let\@lbibitem\@NMSBorig@@lbibitem
    \let\@bibitem\@NMSBrealorig@@bibitem
    \@input@{\jobname.sbb}
    \endgroup
  \else
    \endlist
  \fi
  \ifx\NMSB@missingcat\NMSB@empty\else
    \expandafter\NMSB@warnnocateg\NMSB@missingcat\end
  \fi
  \ifNMSB@strict
    \ifx\NMSB@doublecat\NMSB@empty\else
      \expandafter\NMSB@warndblcateg\NMSB@doublecat\end
    \fi
  \fi
  \ifdim\NMSB@reallylongest=\NMSB@longest\relax\else
    \NMSB@warnwronglongest
  \fi
}
\endinput
%%
%% End of file `splitbib.sty'.
